
import Base.zero


export
    AV_CODEC_PROP_INTRA_ONLY,
    AV_CODEC_PROP_LOSSY,
    AV_CODEC_PROP_LOSSLESS,
    CODEC_FLAG_UNALIGNED,
    CODEC_FLAG_QSCALE,
    CODEC_FLAG_4MV,
    CODEC_FLAG_OUTPUT_CORRUPT,
    CODEC_FLAG_QPEL,
    CODEC_FLAG_GMC,
    CODEC_FLAG_MV0,
    CODEC_FLAG_INPUT_PRESERVED,
    CODEC_FLAG_PASS1,
    CODEC_FLAG_PASS2,
    CODEC_FLAG_GRAY,
    CODEC_FLAG_EMU_EDGE,
    CODEC_FLAG_PSNR,
    CODEC_FLAG_TRUNCATED,
    CODEC_FLAG_NORMALIZE_AQP,
    CODEC_FLAG_INTERLACED_DCT,
    CODEC_FLAG_LOW_DELAY,
    CODEC_FLAG_GLOBAL_HEADER,
    CODEC_FLAG_BITEXACT,
    CODEC_FLAG_AC_PRED,
    CODEC_FLAG_LOOP_FILTER,
    CODEC_FLAG_INTERLACED_ME,
    CODEC_FLAG_CLOSED_GOP,
    CODEC_FLAG2_FAST,
    CODEC_FLAG2_NO_OUTPUT,
    CODEC_FLAG2_LOCAL_HEADER,
    CODEC_FLAG2_IGNORE_CROP,
    CODEC_FLAG2_CHUNKS,
    CODEC_CAP_DRAW_HORIZ_BAND,
    CODEC_CAP_DR1,
    CODEC_CAP_TRUNCATED,
    CODEC_CAP_HWACCEL,
    CODEC_CAP_DELAY,
    CODEC_CAP_SMALL_LAST_FRAME,
    CODEC_CAP_HWACCEL_VDPAU,
    CODEC_CAP_SUBFRAMES,
    CODEC_CAP_EXPERIMENTAL,
    CODEC_CAP_CHANNEL_CONF,
    CODEC_CAP_NEG_LINESIZES,
    CODEC_CAP_FRAME_THREADS,
    CODEC_CAP_SLICE_THREADS,
    CODEC_CAP_PARAM_CHANGE,
    CODEC_CAP_AUTO_THREADS,
    CODEC_CAP_VARIABLE_FRAME_SIZE,
    MB_TYPE_INTRA4x4,
    MB_TYPE_INTRA16x16,
    MB_TYPE_INTRA_PCM,
    MB_TYPE_16x16,
    MB_TYPE_16x8,
    MB_TYPE_8x16,
    MB_TYPE_8x8,
    MB_TYPE_INTERLACED,
    MB_TYPE_DIRECT2,
    MB_TYPE_ACPRED,
    MB_TYPE_GMC,
    MB_TYPE_SKIP,
    MB_TYPE_P0L0,
    MB_TYPE_P1L0,
    MB_TYPE_P0L1,
    MB_TYPE_P1L1,
    MB_TYPE_L0,
    MB_TYPE_L1,
    MB_TYPE_L0L1,
    MB_TYPE_QUANT,
    MB_TYPE_CBP,
    AV_GET_BUFFER_FLAG_REF,
    AV_PKT_FLAG_KEY,
    AV_PKT_FLAG_CORRUPT,
    SLICE_FLAG_CODED_ORDER,
    SLICE_FLAG_ALLOW_FIELD,
    SLICE_FLAG_ALLOW_PLANE,
    AV_EF_CRCCHECK,
    AV_EF_BITSTREAM,
    AV_EF_BUFFER,
    AV_EF_EXPLODE,
    AVPALETTE_SIZE,
    AVPALETTE_COUNT,
    AV_SUBTITLE_FLAG_FORCED,
    AV_PARSER_PTS_NB,
    PARSER_FLAG_COMPLETE_FRAMES,
    PARSER_FLAG_ONCE,
    PARSER_FLAG_FETCHED_OFFSET,
    AVCodecID,
    AV_CODEC_ID_NONE,
    AV_CODEC_ID_MPEG1VIDEO,
    AV_CODEC_ID_MPEG2VIDEO,
    AV_CODEC_ID_MPEG2VIDEO_XVMC,
    AV_CODEC_ID_H261,
    AV_CODEC_ID_H263,
    AV_CODEC_ID_RV10,
    AV_CODEC_ID_RV20,
    AV_CODEC_ID_MJPEG,
    AV_CODEC_ID_MJPEGB,
    AV_CODEC_ID_LJPEG,
    AV_CODEC_ID_SP5X,
    AV_CODEC_ID_JPEGLS,
    AV_CODEC_ID_MPEG4,
    AV_CODEC_ID_RAWVIDEO,
    AV_CODEC_ID_MSMPEG4V1,
    AV_CODEC_ID_MSMPEG4V2,
    AV_CODEC_ID_MSMPEG4V3,
    AV_CODEC_ID_WMV1,
    AV_CODEC_ID_WMV2,
    AV_CODEC_ID_H263P,
    AV_CODEC_ID_H263I,
    AV_CODEC_ID_FLV1,
    AV_CODEC_ID_SVQ1,
    AV_CODEC_ID_SVQ3,
    AV_CODEC_ID_DVVIDEO,
    AV_CODEC_ID_HUFFYUV,
    AV_CODEC_ID_CYUV,
    AV_CODEC_ID_H264,
    AV_CODEC_ID_INDEO3,
    AV_CODEC_ID_VP3,
    AV_CODEC_ID_THEORA,
    AV_CODEC_ID_ASV1,
    AV_CODEC_ID_ASV2,
    AV_CODEC_ID_FFV1,
    AV_CODEC_ID_4XM,
    AV_CODEC_ID_VCR1,
    AV_CODEC_ID_CLJR,
    AV_CODEC_ID_MDEC,
    AV_CODEC_ID_ROQ,
    AV_CODEC_ID_INTERPLAY_VIDEO,
    AV_CODEC_ID_XAN_WC3,
    AV_CODEC_ID_XAN_WC4,
    AV_CODEC_ID_RPZA,
    AV_CODEC_ID_CINEPAK,
    AV_CODEC_ID_WS_VQA,
    AV_CODEC_ID_MSRLE,
    AV_CODEC_ID_MSVIDEO1,
    AV_CODEC_ID_IDCIN,
    AV_CODEC_ID_8BPS,
    AV_CODEC_ID_SMC,
    AV_CODEC_ID_FLIC,
    AV_CODEC_ID_TRUEMOTION1,
    AV_CODEC_ID_VMDVIDEO,
    AV_CODEC_ID_MSZH,
    AV_CODEC_ID_ZLIB,
    AV_CODEC_ID_QTRLE,
    AV_CODEC_ID_TSCC,
    AV_CODEC_ID_ULTI,
    AV_CODEC_ID_QDRAW,
    AV_CODEC_ID_VIXL,
    AV_CODEC_ID_QPEG,
    AV_CODEC_ID_PNG,
    AV_CODEC_ID_PPM,
    AV_CODEC_ID_PBM,
    AV_CODEC_ID_PGM,
    AV_CODEC_ID_PGMYUV,
    AV_CODEC_ID_PAM,
    AV_CODEC_ID_FFVHUFF,
    AV_CODEC_ID_RV30,
    AV_CODEC_ID_RV40,
    AV_CODEC_ID_VC1,
    AV_CODEC_ID_WMV3,
    AV_CODEC_ID_LOCO,
    AV_CODEC_ID_WNV1,
    AV_CODEC_ID_AASC,
    AV_CODEC_ID_INDEO2,
    AV_CODEC_ID_FRAPS,
    AV_CODEC_ID_TRUEMOTION2,
    AV_CODEC_ID_BMP,
    AV_CODEC_ID_CSCD,
    AV_CODEC_ID_MMVIDEO,
    AV_CODEC_ID_ZMBV,
    AV_CODEC_ID_AVS,
    AV_CODEC_ID_SMACKVIDEO,
    AV_CODEC_ID_NUV,
    AV_CODEC_ID_KMVC,
    AV_CODEC_ID_FLASHSV,
    AV_CODEC_ID_CAVS,
    AV_CODEC_ID_JPEG2000,
    AV_CODEC_ID_VMNC,
    AV_CODEC_ID_VP5,
    AV_CODEC_ID_VP6,
    AV_CODEC_ID_VP6F,
    AV_CODEC_ID_TARGA,
    AV_CODEC_ID_DSICINVIDEO,
    AV_CODEC_ID_TIERTEXSEQVIDEO,
    AV_CODEC_ID_TIFF,
    AV_CODEC_ID_GIF,
    AV_CODEC_ID_DXA,
    AV_CODEC_ID_DNXHD,
    AV_CODEC_ID_THP,
    AV_CODEC_ID_SGI,
    AV_CODEC_ID_C93,
    AV_CODEC_ID_BETHSOFTVID,
    AV_CODEC_ID_PTX,
    AV_CODEC_ID_TXD,
    AV_CODEC_ID_VP6A,
    AV_CODEC_ID_AMV,
    AV_CODEC_ID_VB,
    AV_CODEC_ID_PCX,
    AV_CODEC_ID_SUNRAST,
    AV_CODEC_ID_INDEO4,
    AV_CODEC_ID_INDEO5,
    AV_CODEC_ID_MIMIC,
    AV_CODEC_ID_RL2,
    AV_CODEC_ID_ESCAPE124,
    AV_CODEC_ID_DIRAC,
    AV_CODEC_ID_BFI,
    AV_CODEC_ID_CMV,
    AV_CODEC_ID_MOTIONPIXELS,
    AV_CODEC_ID_TGV,
    AV_CODEC_ID_TGQ,
    AV_CODEC_ID_TQI,
    AV_CODEC_ID_AURA,
    AV_CODEC_ID_AURA2,
    AV_CODEC_ID_V210X,
    AV_CODEC_ID_TMV,
    AV_CODEC_ID_V210,
    AV_CODEC_ID_DPX,
    AV_CODEC_ID_MAD,
    AV_CODEC_ID_FRWU,
    AV_CODEC_ID_FLASHSV2,
    AV_CODEC_ID_CDGRAPHICS,
    AV_CODEC_ID_R210,
    AV_CODEC_ID_ANM,
    AV_CODEC_ID_BINKVIDEO,
    AV_CODEC_ID_IFF_ILBM,
    AV_CODEC_ID_IFF_BYTERUN1,
    AV_CODEC_ID_KGV1,
    AV_CODEC_ID_YOP,
    AV_CODEC_ID_VP8,
    AV_CODEC_ID_PICTOR,
    AV_CODEC_ID_ANSI,
    AV_CODEC_ID_A64_MULTI,
    AV_CODEC_ID_A64_MULTI5,
    AV_CODEC_ID_R10K,
    AV_CODEC_ID_MXPEG,
    AV_CODEC_ID_LAGARITH,
    AV_CODEC_ID_PRORES,
    AV_CODEC_ID_JV,
    AV_CODEC_ID_DFA,
    AV_CODEC_ID_WMV3IMAGE,
    AV_CODEC_ID_VC1IMAGE,
    AV_CODEC_ID_UTVIDEO,
    AV_CODEC_ID_BMV_VIDEO,
    AV_CODEC_ID_VBLE,
    AV_CODEC_ID_DXTORY,
    AV_CODEC_ID_V410,
    AV_CODEC_ID_XWD,
    AV_CODEC_ID_CDXL,
    AV_CODEC_ID_XBM,
    AV_CODEC_ID_ZEROCODEC,
    AV_CODEC_ID_MSS1,
    AV_CODEC_ID_MSA1,
    AV_CODEC_ID_TSCC2,
    AV_CODEC_ID_MTS2,
    AV_CODEC_ID_CLLC,
    AV_CODEC_ID_MSS2,
    AV_CODEC_ID_VP9,
    AV_CODEC_ID_AIC,
    AV_CODEC_ID_ESCAPE130,
    AV_CODEC_ID_G2M,
    AV_CODEC_ID_WEBP,
    AV_CODEC_ID_HNM4_VIDEO,
    AV_CODEC_ID_HEVC,
    AV_CODEC_ID_FIC,
    AV_CODEC_ID_FIRST_AUDIO,
    AV_CODEC_ID_PCM_S16LE,
    AV_CODEC_ID_PCM_S16BE,
    AV_CODEC_ID_PCM_U16LE,
    AV_CODEC_ID_PCM_U16BE,
    AV_CODEC_ID_PCM_S8,
    AV_CODEC_ID_PCM_U8,
    AV_CODEC_ID_PCM_MULAW,
    AV_CODEC_ID_PCM_ALAW,
    AV_CODEC_ID_PCM_S32LE,
    AV_CODEC_ID_PCM_S32BE,
    AV_CODEC_ID_PCM_U32LE,
    AV_CODEC_ID_PCM_U32BE,
    AV_CODEC_ID_PCM_S24LE,
    AV_CODEC_ID_PCM_S24BE,
    AV_CODEC_ID_PCM_U24LE,
    AV_CODEC_ID_PCM_U24BE,
    AV_CODEC_ID_PCM_S24DAUD,
    AV_CODEC_ID_PCM_ZORK,
    AV_CODEC_ID_PCM_S16LE_PLANAR,
    AV_CODEC_ID_PCM_DVD,
    AV_CODEC_ID_PCM_F32BE,
    AV_CODEC_ID_PCM_F32LE,
    AV_CODEC_ID_PCM_F64BE,
    AV_CODEC_ID_PCM_F64LE,
    AV_CODEC_ID_PCM_BLURAY,
    AV_CODEC_ID_PCM_LXF,
    AV_CODEC_ID_S302M,
    AV_CODEC_ID_PCM_S8_PLANAR,
    AV_CODEC_ID_PCM_S24LE_PLANAR,
    AV_CODEC_ID_PCM_S32LE_PLANAR,
    AV_CODEC_ID_ADPCM_IMA_QT,
    AV_CODEC_ID_ADPCM_IMA_WAV,
    AV_CODEC_ID_ADPCM_IMA_DK3,
    AV_CODEC_ID_ADPCM_IMA_DK4,
    AV_CODEC_ID_ADPCM_IMA_WS,
    AV_CODEC_ID_ADPCM_IMA_SMJPEG,
    AV_CODEC_ID_ADPCM_MS,
    AV_CODEC_ID_ADPCM_4XM,
    AV_CODEC_ID_ADPCM_XA,
    AV_CODEC_ID_ADPCM_ADX,
    AV_CODEC_ID_ADPCM_EA,
    AV_CODEC_ID_ADPCM_G726,
    AV_CODEC_ID_ADPCM_CT,
    AV_CODEC_ID_ADPCM_SWF,
    AV_CODEC_ID_ADPCM_YAMAHA,
    AV_CODEC_ID_ADPCM_SBPRO_4,
    AV_CODEC_ID_ADPCM_SBPRO_3,
    AV_CODEC_ID_ADPCM_SBPRO_2,
    AV_CODEC_ID_ADPCM_THP,
    AV_CODEC_ID_ADPCM_IMA_AMV,
    AV_CODEC_ID_ADPCM_EA_R1,
    AV_CODEC_ID_ADPCM_EA_R3,
    AV_CODEC_ID_ADPCM_EA_R2,
    AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
    AV_CODEC_ID_ADPCM_IMA_EA_EACS,
    AV_CODEC_ID_ADPCM_EA_XAS,
    AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
    AV_CODEC_ID_ADPCM_IMA_ISS,
    AV_CODEC_ID_ADPCM_G722,
    AV_CODEC_ID_ADPCM_IMA_APC,
    AV_CODEC_ID_AMR_NB,
    AV_CODEC_ID_AMR_WB,
    AV_CODEC_ID_RA_144,
    AV_CODEC_ID_RA_288,
    AV_CODEC_ID_ROQ_DPCM,
    AV_CODEC_ID_INTERPLAY_DPCM,
    AV_CODEC_ID_XAN_DPCM,
    AV_CODEC_ID_SOL_DPCM,
    AV_CODEC_ID_MP2,
    AV_CODEC_ID_MP3,
    AV_CODEC_ID_AAC,
    AV_CODEC_ID_AC3,
    AV_CODEC_ID_DTS,
    AV_CODEC_ID_VORBIS,
    AV_CODEC_ID_DVAUDIO,
    AV_CODEC_ID_WMAV1,
    AV_CODEC_ID_WMAV2,
    AV_CODEC_ID_MACE3,
    AV_CODEC_ID_MACE6,
    AV_CODEC_ID_VMDAUDIO,
    AV_CODEC_ID_FLAC,
    AV_CODEC_ID_MP3ADU,
    AV_CODEC_ID_MP3ON4,
    AV_CODEC_ID_SHORTEN,
    AV_CODEC_ID_ALAC,
    AV_CODEC_ID_WESTWOOD_SND1,
    AV_CODEC_ID_GSM,
    AV_CODEC_ID_QDM2,
    AV_CODEC_ID_COOK,
    AV_CODEC_ID_TRUESPEECH,
    AV_CODEC_ID_TTA,
    AV_CODEC_ID_SMACKAUDIO,
    AV_CODEC_ID_QCELP,
    AV_CODEC_ID_WAVPACK,
    AV_CODEC_ID_DSICINAUDIO,
    AV_CODEC_ID_IMC,
    AV_CODEC_ID_MUSEPACK7,
    AV_CODEC_ID_MLP,
    AV_CODEC_ID_GSM_MS,
    AV_CODEC_ID_ATRAC3,
    AV_CODEC_ID_VOXWARE,
    AV_CODEC_ID_APE,
    AV_CODEC_ID_NELLYMOSER,
    AV_CODEC_ID_MUSEPACK8,
    AV_CODEC_ID_SPEEX,
    AV_CODEC_ID_WMAVOICE,
    AV_CODEC_ID_WMAPRO,
    AV_CODEC_ID_WMALOSSLESS,
    AV_CODEC_ID_ATRAC3P,
    AV_CODEC_ID_EAC3,
    AV_CODEC_ID_SIPR,
    AV_CODEC_ID_MP1,
    AV_CODEC_ID_TWINVQ,
    AV_CODEC_ID_TRUEHD,
    AV_CODEC_ID_MP4ALS,
    AV_CODEC_ID_ATRAC1,
    AV_CODEC_ID_BINKAUDIO_RDFT,
    AV_CODEC_ID_BINKAUDIO_DCT,
    AV_CODEC_ID_AAC_LATM,
    AV_CODEC_ID_QDMC,
    AV_CODEC_ID_CELT,
    AV_CODEC_ID_G723_1,
    AV_CODEC_ID_G729,
    AV_CODEC_ID_8SVX_EXP,
    AV_CODEC_ID_8SVX_FIB,
    AV_CODEC_ID_BMV_AUDIO,
    AV_CODEC_ID_RALF,
    AV_CODEC_ID_IAC,
    AV_CODEC_ID_ILBC,
    AV_CODEC_ID_OPUS,
    AV_CODEC_ID_COMFORT_NOISE,
    AV_CODEC_ID_TAK,
    AV_CODEC_ID_METASOUND,
    AV_CODEC_ID_FIRST_SUBTITLE,
    AV_CODEC_ID_DVD_SUBTITLE,
    AV_CODEC_ID_DVB_SUBTITLE,
    AV_CODEC_ID_TEXT,
    AV_CODEC_ID_XSUB,
    AV_CODEC_ID_SSA,
    AV_CODEC_ID_MOV_TEXT,
    AV_CODEC_ID_HDMV_PGS_SUBTITLE,
    AV_CODEC_ID_DVB_TELETEXT,
    AV_CODEC_ID_SRT,
    AV_CODEC_ID_FIRST_UNKNOWN,
    AV_CODEC_ID_TTF,
    AV_CODEC_ID_PROBE,
    AV_CODEC_ID_MPEG2TS,
    AV_CODEC_ID_MPEG4SYSTEMS,
    AV_CODEC_ID_FFMETADATA,
    AVCodecDescriptor,
    Motion_Est_ID,
    ME_ZERO,
    ME_FULL,
    ME_LOG,
    ME_PHODS,
    ME_EPZS,
    ME_X1,
    ME_HEX,
    ME_UMH,
    ME_TESA,
    AVDiscard,
    AVDISCARD_NONE,
    AVDISCARD_DEFAULT,
    AVDISCARD_NONREF,
    AVDISCARD_BIDIR,
    AVDISCARD_NONKEY,
    AVDISCARD_ALL,
    AVColorPrimaries,
    AVCOL_PRI_BT709,
    AVCOL_PRI_UNSPECIFIED,
    AVCOL_PRI_BT470M,
    AVCOL_PRI_BT470BG,
    AVCOL_PRI_SMPTE170M,
    AVCOL_PRI_SMPTE240M,
    AVCOL_PRI_FILM,
    AVCOL_PRI_BT2020,
    AVCOL_PRI_NB,
    AVColorTransferCharacteristic,
    AVCOL_TRC_BT709,
    AVCOL_TRC_UNSPECIFIED,
    AVCOL_TRC_GAMMA22,
    AVCOL_TRC_GAMMA28,
    AVCOL_TRC_SMPTE170M,
    AVCOL_TRC_SMPTE240M,
    AVCOL_TRC_LINEAR,
    AVCOL_TRC_LOG,
    AVCOL_TRC_LOG_SQRT,
    AVCOL_TRC_IEC61966_2_4,
    AVCOL_TRC_BT1361_ECG,
    AVCOL_TRC_IEC61966_2_1,
    AVCOL_TRC_BT2020_10,
    AVCOL_TRC_BT2020_12,
    AVCOL_TRC_NB,
    AVColorSpace,
    AVCOL_SPC_RGB,
    AVCOL_SPC_BT709,
    AVCOL_SPC_UNSPECIFIED,
    AVCOL_SPC_FCC,
    AVCOL_SPC_BT470BG,
    AVCOL_SPC_SMPTE170M,
    AVCOL_SPC_SMPTE240M,
    AVCOL_SPC_YCOCG,
    AVCOL_SPC_BT2020_NCL,
    AVCOL_SPC_BT2020_CL,
    AVCOL_SPC_NB,
    AVColorRange,
    AVCOL_RANGE_UNSPECIFIED,
    AVCOL_RANGE_MPEG,
    AVCOL_RANGE_JPEG,
    AVCOL_RANGE_NB,
    AVChromaLocation,
    AVCHROMA_LOC_UNSPECIFIED,
    AVCHROMA_LOC_LEFT,
    AVCHROMA_LOC_CENTER,
    AVCHROMA_LOC_TOPLEFT,
    AVCHROMA_LOC_TOP,
    AVCHROMA_LOC_BOTTOMLEFT,
    AVCHROMA_LOC_BOTTOM,
    AVCHROMA_LOC_NB,
    AVAudioServiceType,
    AV_AUDIO_SERVICE_TYPE_MAIN,
    AV_AUDIO_SERVICE_TYPE_EFFECTS,
    AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED,
    AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED,
    AV_AUDIO_SERVICE_TYPE_DIALOGUE,
    AV_AUDIO_SERVICE_TYPE_COMMENTARY,
    AV_AUDIO_SERVICE_TYPE_EMERGENCY,
    AV_AUDIO_SERVICE_TYPE_VOICE_OVER,
    AV_AUDIO_SERVICE_TYPE_KARAOKE,
    AV_AUDIO_SERVICE_TYPE_NB,
    RcOverride,
    Array_2_Int16,
    Array_3_Array_2_Int16,
    AVPanScan,
    AVPacketSideDataType,
    AV_PKT_DATA_PALETTE,
    AV_PKT_DATA_NEW_EXTRADATA,
    AV_PKT_DATA_PARAM_CHANGE,
    AV_PKT_DATA_H263_MB_INFO,
    AVPacket,
    AVSideDataParamChangeFlags,
    AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT,
    AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT,
    AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE,
    AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS,
    AVCodecInternal,
    AVFieldOrder,
    AV_FIELD_UNKNOWN,
    AV_FIELD_PROGRESSIVE,
    AV_FIELD_TT,
    AV_FIELD_BB,
    AV_FIELD_TB,
    AV_FIELD_BT,
    Array_32_Uint8,
    Array_8_Uint64,
    AVProfile,
    AVCodecDefault,
    AVCodec,
    AVHWAccel,
    AVCodecContext,
    Array_8_Ptr,
    Array_8_Cint,
    AVPicture,
    AVSubtitleType,
    SUBTITLE_NONE,
    SUBTITLE_BITMAP,
    SUBTITLE_TEXT,
    SUBTITLE_ASS,
    AVSubtitleRect,
    AVSubtitle,
    AVPictureStructure,
    AV_PICTURE_STRUCTURE_UNKNOWN,
    AV_PICTURE_STRUCTURE_TOP_FIELD,
    AV_PICTURE_STRUCTURE_BOTTOM_FIELD,
    AV_PICTURE_STRUCTURE_FRAME,
    Array_4_Int64,
    Array_5_Cint,
    AVCodecParser,
    AVCodecParserContext,
    AVBitStreamFilter,
    AVBitStreamFilterContext,
    AVLockOp,
    AV_LOCK_CREATE,
    AV_LOCK_OBTAIN,
    AV_LOCK_RELEASE,
    AV_LOCK_DESTROY #,
    # vaapi_context,
    # AVVDPAUPictureInfo,
    # AVVDPAUContext,
    # vdpau_render_state,
    # AV_XVMC_ID,
    # xvmc_pix_fmt


const AV_CODEC_PROP_INTRA_ONLY = 1 << 0
const AV_CODEC_PROP_LOSSY = 1 << 1
const AV_CODEC_PROP_LOSSLESS = 1 << 2
const FF_INPUT_BUFFER_PADDING_SIZE = 8
const FF_MIN_BUFFER_SIZE = 16384
const FF_MAX_B_FRAMES = 16
const CODEC_FLAG_UNALIGNED = 0x0001
const CODEC_FLAG_QSCALE = 0x0002
const CODEC_FLAG_4MV = 0x0004
const CODEC_FLAG_OUTPUT_CORRUPT = 0x0008
const CODEC_FLAG_QPEL = 0x0010
const CODEC_FLAG_GMC = 0x0020
const CODEC_FLAG_MV0 = 0x0040
const CODEC_FLAG_INPUT_PRESERVED = 0x0100
const CODEC_FLAG_PASS1 = 0x0200
const CODEC_FLAG_PASS2 = 0x0400
const CODEC_FLAG_GRAY = 0x2000
const CODEC_FLAG_EMU_EDGE = 0x4000
const CODEC_FLAG_PSNR = 0x8000
const CODEC_FLAG_TRUNCATED = 0x00010000
const CODEC_FLAG_NORMALIZE_AQP = 0x00020000
const CODEC_FLAG_INTERLACED_DCT = 0x00040000
const CODEC_FLAG_LOW_DELAY = 0x00080000
const CODEC_FLAG_GLOBAL_HEADER = 0x00400000
const CODEC_FLAG_BITEXACT = 0x00800000
const CODEC_FLAG_AC_PRED = 0x01000000
const CODEC_FLAG_LOOP_FILTER = 0x00000800
const CODEC_FLAG_INTERLACED_ME = 0x20000000
const CODEC_FLAG_CLOSED_GOP = 0x80000000
const CODEC_FLAG2_FAST = 0x00000001
const CODEC_FLAG2_NO_OUTPUT = 0x00000004
const CODEC_FLAG2_LOCAL_HEADER = 0x00000008
const CODEC_FLAG2_IGNORE_CROP = 0x00010000
const CODEC_FLAG2_CHUNKS = 0x00008000
const CODEC_CAP_DRAW_HORIZ_BAND = 0x0001
const CODEC_CAP_DR1 = 0x0002
const CODEC_CAP_TRUNCATED = 0x0008
const CODEC_CAP_HWACCEL = 0x0010
const CODEC_CAP_DELAY = 0x0020
const CODEC_CAP_SMALL_LAST_FRAME = 0x0040
const CODEC_CAP_HWACCEL_VDPAU = 0x0080
const CODEC_CAP_SUBFRAMES = 0x0100
const CODEC_CAP_EXPERIMENTAL = 0x0200
const CODEC_CAP_CHANNEL_CONF = 0x0400
const CODEC_CAP_NEG_LINESIZES = 0x0800
const CODEC_CAP_FRAME_THREADS = 0x1000
const CODEC_CAP_SLICE_THREADS = 0x2000
const CODEC_CAP_PARAM_CHANGE = 0x4000
const CODEC_CAP_AUTO_THREADS = 0x8000
const CODEC_CAP_VARIABLE_FRAME_SIZE = 0x00010000
const MB_TYPE_INTRA4x4 = 0x0001
const MB_TYPE_INTRA16x16 = 0x0002
const MB_TYPE_INTRA_PCM = 0x0004
const MB_TYPE_16x16 = 0x0008
const MB_TYPE_16x8 = 0x0010
const MB_TYPE_8x16 = 0x0020
const MB_TYPE_8x8 = 0x0040
const MB_TYPE_INTERLACED = 0x0080
const MB_TYPE_DIRECT2 = 0x0100
const MB_TYPE_ACPRED = 0x0200
const MB_TYPE_GMC = 0x0400
const MB_TYPE_SKIP = 0x0800
const MB_TYPE_P0L0 = 0x1000
const MB_TYPE_P1L0 = 0x2000
const MB_TYPE_P0L1 = 0x4000
const MB_TYPE_P1L1 = 0x8000
const MB_TYPE_L0 = MB_TYPE_P0L0 | MB_TYPE_P1L0
const MB_TYPE_L1 = MB_TYPE_P0L1 | MB_TYPE_P1L1
const MB_TYPE_L0L1 = MB_TYPE_L0 | MB_TYPE_L1
const MB_TYPE_QUANT = 0x00010000
const MB_TYPE_CBP = 0x00020000
const FF_QSCALE_TYPE_MPEG1 = 0
const FF_QSCALE_TYPE_MPEG2 = 1
const FF_QSCALE_TYPE_H264 = 2
const FF_QSCALE_TYPE_VP56 = 3
const FF_BUFFER_TYPE_INTERNAL = 1
const FF_BUFFER_TYPE_USER = 2
const FF_BUFFER_TYPE_SHARED = 4
const FF_BUFFER_TYPE_COPY = 8
const FF_BUFFER_HINTS_VALID = 0x01
const FF_BUFFER_HINTS_READABLE = 0x02
const FF_BUFFER_HINTS_PRESERVE = 0x04
const FF_BUFFER_HINTS_REUSABLE = 0x08
const AV_GET_BUFFER_FLAG_REF = 1 << 0
const AV_PKT_FLAG_KEY = 0x0001
const AV_PKT_FLAG_CORRUPT = 0x0002
const FF_COMPRESSION_DEFAULT = -1
const FF_ASPECT_EXTENDED = 15
const FF_RC_STRATEGY_XVID = 1
const FF_PRED_LEFT = 0
const FF_PRED_PLANE = 1
const FF_PRED_MEDIAN = 2
const FF_CMP_SAD = 0
const FF_CMP_SSE = 1
const FF_CMP_SATD = 2
const FF_CMP_DCT = 3
const FF_CMP_PSNR = 4
const FF_CMP_BIT = 5
const FF_CMP_RD = 6
const FF_CMP_ZERO = 7
const FF_CMP_VSAD = 8
const FF_CMP_VSSE = 9
const FF_CMP_NSSE = 10
const FF_CMP_DCTMAX = 13
const FF_CMP_DCT264 = 14
const FF_CMP_CHROMA = 256
const FF_DTG_AFD_SAME = 8
const FF_DTG_AFD_4_3 = 9
const FF_DTG_AFD_16_9 = 10
const FF_DTG_AFD_14_9 = 11
const FF_DTG_AFD_4_3_SP_14_9 = 13
const FF_DTG_AFD_16_9_SP_14_9 = 14
const FF_DTG_AFD_SP_4_3 = 15
const FF_DEFAULT_QUANT_BIAS = 999999
const SLICE_FLAG_CODED_ORDER = 0x0001
const SLICE_FLAG_ALLOW_FIELD = 0x0002
const SLICE_FLAG_ALLOW_PLANE = 0x0004
const FF_MB_DECISION_SIMPLE = 0
const FF_MB_DECISION_BITS = 1
const FF_MB_DECISION_RD = 2
const FF_CODER_TYPE_VLC = 0
const FF_CODER_TYPE_AC = 1
const FF_CODER_TYPE_RAW = 2
const FF_CODER_TYPE_RLE = 3
const FF_CODER_TYPE_DEFLATE = 4
const FF_BUG_AUTODETECT = 1
const FF_BUG_OLD_MSMPEG4 = 2
const FF_BUG_XVID_ILACE = 4
const FF_BUG_UMP4 = 8
const FF_BUG_NO_PADDING = 16
const FF_BUG_AMV = 32
const FF_BUG_AC_VLC = 0
const FF_BUG_QPEL_CHROMA = 64
const FF_BUG_STD_QPEL = 128
const FF_BUG_QPEL_CHROMA2 = 256
const FF_BUG_DIRECT_BLOCKSIZE = 512
const FF_BUG_EDGE = 1024
const FF_BUG_HPEL_CHROMA = 2048
const FF_BUG_DC_CLIP = 4096
const FF_BUG_MS = 8192
const FF_BUG_TRUNCATED = 16384
const FF_COMPLIANCE_VERY_STRICT = 2
const FF_COMPLIANCE_STRICT = 1
const FF_COMPLIANCE_NORMAL = 0
const FF_COMPLIANCE_UNOFFICIAL = -1
const FF_COMPLIANCE_EXPERIMENTAL = -2
const FF_EC_GUESS_MVS = 1
const FF_EC_DEBLOCK = 2
const FF_DEBUG_PICT_INFO = 1
const FF_DEBUG_RC = 2
const FF_DEBUG_BITSTREAM = 4
const FF_DEBUG_MB_TYPE = 8
const FF_DEBUG_QP = 16
const FF_DEBUG_MV = 32
const FF_DEBUG_DCT_COEFF = 0x00000040
const FF_DEBUG_SKIP = 0x00000080
const FF_DEBUG_STARTCODE = 0x00000100
const FF_DEBUG_PTS = 0x00000200
const FF_DEBUG_ER = 0x00000400
const FF_DEBUG_MMCO = 0x00000800
const FF_DEBUG_BUGS = 0x00001000
const FF_DEBUG_VIS_QP = 0x00002000
const FF_DEBUG_VIS_MB_TYPE = 0x00004000
const FF_DEBUG_BUFFERS = 0x00008000
const FF_DEBUG_THREADS = 0x00010000
const FF_DEBUG_VIS_MV_P_FOR = 0x00000001
const FF_DEBUG_VIS_MV_B_FOR = 0x00000002
const FF_DEBUG_VIS_MV_B_BACK = 0x00000004
const AV_EF_CRCCHECK = 1 << 0
const AV_EF_BITSTREAM = 1 << 1
const AV_EF_BUFFER = 1 << 2
const AV_EF_EXPLODE = 1 << 3
const FF_DCT_AUTO = 0
const FF_DCT_FASTINT = 1
const FF_DCT_INT = 2
const FF_DCT_MMX = 3
const FF_DCT_ALTIVEC = 5
const FF_DCT_FAAN = 6
const FF_IDCT_AUTO = 0
const FF_IDCT_INT = 1
const FF_IDCT_SIMPLE = 2
const FF_IDCT_SIMPLEMMX = 3
const FF_IDCT_ARM = 7
const FF_IDCT_ALTIVEC = 8
const FF_IDCT_SH4 = 9
const FF_IDCT_SIMPLEARM = 10
const FF_IDCT_IPP = 13
const FF_IDCT_XVIDMMX = 14
const FF_IDCT_SIMPLEARMV5TE = 16
const FF_IDCT_SIMPLEARMV6 = 17
const FF_IDCT_SIMPLEVIS = 18
const FF_IDCT_FAAN = 20
const FF_IDCT_SIMPLENEON = 22
const FF_IDCT_SIMPLEALPHA = 23
const FF_THREAD_FRAME = 1
const FF_THREAD_SLICE = 2
const FF_PROFILE_UNKNOWN = -99
const FF_PROFILE_RESERVED = -100
const FF_PROFILE_AAC_MAIN = 0
const FF_PROFILE_AAC_LOW = 1
const FF_PROFILE_AAC_SSR = 2
const FF_PROFILE_AAC_LTP = 3
const FF_PROFILE_AAC_HE = 4
const FF_PROFILE_AAC_HE_V2 = 28
const FF_PROFILE_AAC_LD = 22
const FF_PROFILE_AAC_ELD = 38
const FF_PROFILE_MPEG2_AAC_LOW = 128
const FF_PROFILE_MPEG2_AAC_HE = 131
const FF_PROFILE_DTS = 20
const FF_PROFILE_DTS_ES = 30
const FF_PROFILE_DTS_96_24 = 40
const FF_PROFILE_DTS_HD_HRA = 50
const FF_PROFILE_DTS_HD_MA = 60
const FF_PROFILE_MPEG2_422 = 0
const FF_PROFILE_MPEG2_HIGH = 1
const FF_PROFILE_MPEG2_SS = 2
const FF_PROFILE_MPEG2_SNR_SCALABLE = 3
const FF_PROFILE_MPEG2_MAIN = 4
const FF_PROFILE_MPEG2_SIMPLE = 5
const FF_PROFILE_H264_CONSTRAINED = 1 << 9
const FF_PROFILE_H264_INTRA = 1 << 11
const FF_PROFILE_H264_BASELINE = 66
const FF_PROFILE_H264_CONSTRAINED_BASELINE = 66 | FF_PROFILE_H264_CONSTRAINED
const FF_PROFILE_H264_MAIN = 77
const FF_PROFILE_H264_EXTENDED = 88
const FF_PROFILE_H264_HIGH = 100
const FF_PROFILE_H264_HIGH_10 = 110
const FF_PROFILE_H264_HIGH_10_INTRA = 110 | FF_PROFILE_H264_INTRA
const FF_PROFILE_H264_HIGH_422 = 122
const FF_PROFILE_H264_HIGH_422_INTRA = 122 | FF_PROFILE_H264_INTRA
const FF_PROFILE_H264_HIGH_444 = 144
const FF_PROFILE_H264_HIGH_444_PREDICTIVE = 244
const FF_PROFILE_H264_HIGH_444_INTRA = 244 | FF_PROFILE_H264_INTRA
const FF_PROFILE_H264_CAVLC_444 = 44
const FF_PROFILE_VC1_SIMPLE = 0
const FF_PROFILE_VC1_MAIN = 1
const FF_PROFILE_VC1_COMPLEX = 2
const FF_PROFILE_VC1_ADVANCED = 3
const FF_PROFILE_MPEG4_SIMPLE = 0
const FF_PROFILE_MPEG4_SIMPLE_SCALABLE = 1
const FF_PROFILE_MPEG4_CORE = 2
const FF_PROFILE_MPEG4_MAIN = 3
const FF_PROFILE_MPEG4_N_BIT = 4
const FF_PROFILE_MPEG4_SCALABLE_TEXTURE = 5
const FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION = 6
const FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE = 7
const FF_PROFILE_MPEG4_HYBRID = 8
const FF_PROFILE_MPEG4_ADVANCED_REAL_TIME = 9
const FF_PROFILE_MPEG4_CORE_SCALABLE = 10
const FF_PROFILE_MPEG4_ADVANCED_CODING = 11
const FF_PROFILE_MPEG4_ADVANCED_CORE = 12
const FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE = 13
const FF_PROFILE_MPEG4_SIMPLE_STUDIO = 14
const FF_PROFILE_MPEG4_ADVANCED_SIMPLE = 15
const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 = 0
const FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 = 1
const FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION = 2
const FF_PROFILE_JPEG2000_DCINEMA_2K = 3
const FF_PROFILE_JPEG2000_DCINEMA_4K = 4
const FF_PROFILE_HEVC_MAIN = 1
const FF_PROFILE_HEVC_MAIN_10 = 2
const FF_PROFILE_HEVC_MAIN_STILL_PICTURE = 3
const FF_LEVEL_UNKNOWN = -99
const AVPALETTE_SIZE = 1024
const AVPALETTE_COUNT = 256
const AV_SUBTITLE_FLAG_FORCED = 0x00000001
const AV_PARSER_PTS_NB = 4
const PARSER_FLAG_COMPLETE_FRAMES = 0x0001
const PARSER_FLAG_ONCE = 0x0002
const PARSER_FLAG_FETCHED_OFFSET = 0x0004
const FF_LOSS_RESOLUTION = 0x0001
const FF_LOSS_DEPTH = 0x0002
const FF_LOSS_COLORSPACE = 0x0004
const FF_LOSS_ALPHA = 0x0008
const FF_LOSS_COLORQUANT = 0x0010
const FF_LOSS_CHROMA = 0x0020

# begin enum AVCodecID
const AVCodecID=UInt32
const AV_CODEC_ID_NONE = UInt32(0)
const AV_CODEC_ID_MPEG1VIDEO = UInt32(1)
const AV_CODEC_ID_MPEG2VIDEO = UInt32(2)
const AV_CODEC_ID_MPEG2VIDEO_XVMC = UInt32(3)
const AV_CODEC_ID_H261 = UInt32(4)
const AV_CODEC_ID_H263 = UInt32(5)
const AV_CODEC_ID_RV10 = UInt32(6)
const AV_CODEC_ID_RV20 = UInt32(7)
const AV_CODEC_ID_MJPEG = UInt32(8)
const AV_CODEC_ID_MJPEGB = UInt32(9)
const AV_CODEC_ID_LJPEG = UInt32(10)
const AV_CODEC_ID_SP5X = UInt32(11)
const AV_CODEC_ID_JPEGLS = UInt32(12)
const AV_CODEC_ID_MPEG4 = UInt32(13)
const AV_CODEC_ID_RAWVIDEO = UInt32(14)
const AV_CODEC_ID_MSMPEG4V1 = UInt32(15)
const AV_CODEC_ID_MSMPEG4V2 = UInt32(16)
const AV_CODEC_ID_MSMPEG4V3 = UInt32(17)
const AV_CODEC_ID_WMV1 = UInt32(18)
const AV_CODEC_ID_WMV2 = UInt32(19)
const AV_CODEC_ID_H263P = UInt32(20)
const AV_CODEC_ID_H263I = UInt32(21)
const AV_CODEC_ID_FLV1 = UInt32(22)
const AV_CODEC_ID_SVQ1 = UInt32(23)
const AV_CODEC_ID_SVQ3 = UInt32(24)
const AV_CODEC_ID_DVVIDEO = UInt32(25)
const AV_CODEC_ID_HUFFYUV = UInt32(26)
const AV_CODEC_ID_CYUV = UInt32(27)
const AV_CODEC_ID_H264 = UInt32(28)
const AV_CODEC_ID_INDEO3 = UInt32(29)
const AV_CODEC_ID_VP3 = UInt32(30)
const AV_CODEC_ID_THEORA = UInt32(31)
const AV_CODEC_ID_ASV1 = UInt32(32)
const AV_CODEC_ID_ASV2 = UInt32(33)
const AV_CODEC_ID_FFV1 = UInt32(34)
const AV_CODEC_ID_4XM = UInt32(35)
const AV_CODEC_ID_VCR1 = UInt32(36)
const AV_CODEC_ID_CLJR = UInt32(37)
const AV_CODEC_ID_MDEC = UInt32(38)
const AV_CODEC_ID_ROQ = UInt32(39)
const AV_CODEC_ID_INTERPLAY_VIDEO = UInt32(40)
const AV_CODEC_ID_XAN_WC3 = UInt32(41)
const AV_CODEC_ID_XAN_WC4 = UInt32(42)
const AV_CODEC_ID_RPZA = UInt32(43)
const AV_CODEC_ID_CINEPAK = UInt32(44)
const AV_CODEC_ID_WS_VQA = UInt32(45)
const AV_CODEC_ID_MSRLE = UInt32(46)
const AV_CODEC_ID_MSVIDEO1 = UInt32(47)
const AV_CODEC_ID_IDCIN = UInt32(48)
const AV_CODEC_ID_8BPS = UInt32(49)
const AV_CODEC_ID_SMC = UInt32(50)
const AV_CODEC_ID_FLIC = UInt32(51)
const AV_CODEC_ID_TRUEMOTION1 = UInt32(52)
const AV_CODEC_ID_VMDVIDEO = UInt32(53)
const AV_CODEC_ID_MSZH = UInt32(54)
const AV_CODEC_ID_ZLIB = UInt32(55)
const AV_CODEC_ID_QTRLE = UInt32(56)
const AV_CODEC_ID_TSCC = UInt32(57)
const AV_CODEC_ID_ULTI = UInt32(58)
const AV_CODEC_ID_QDRAW = UInt32(59)
const AV_CODEC_ID_VIXL = UInt32(60)
const AV_CODEC_ID_QPEG = UInt32(61)
const AV_CODEC_ID_PNG = UInt32(62)
const AV_CODEC_ID_PPM = UInt32(63)
const AV_CODEC_ID_PBM = UInt32(64)
const AV_CODEC_ID_PGM = UInt32(65)
const AV_CODEC_ID_PGMYUV = UInt32(66)
const AV_CODEC_ID_PAM = UInt32(67)
const AV_CODEC_ID_FFVHUFF = UInt32(68)
const AV_CODEC_ID_RV30 = UInt32(69)
const AV_CODEC_ID_RV40 = UInt32(70)
const AV_CODEC_ID_VC1 = UInt32(71)
const AV_CODEC_ID_WMV3 = UInt32(72)
const AV_CODEC_ID_LOCO = UInt32(73)
const AV_CODEC_ID_WNV1 = UInt32(74)
const AV_CODEC_ID_AASC = UInt32(75)
const AV_CODEC_ID_INDEO2 = UInt32(76)
const AV_CODEC_ID_FRAPS = UInt32(77)
const AV_CODEC_ID_TRUEMOTION2 = UInt32(78)
const AV_CODEC_ID_BMP = UInt32(79)
const AV_CODEC_ID_CSCD = UInt32(80)
const AV_CODEC_ID_MMVIDEO = UInt32(81)
const AV_CODEC_ID_ZMBV = UInt32(82)
const AV_CODEC_ID_AVS = UInt32(83)
const AV_CODEC_ID_SMACKVIDEO = UInt32(84)
const AV_CODEC_ID_NUV = UInt32(85)
const AV_CODEC_ID_KMVC = UInt32(86)
const AV_CODEC_ID_FLASHSV = UInt32(87)
const AV_CODEC_ID_CAVS = UInt32(88)
const AV_CODEC_ID_JPEG2000 = UInt32(89)
const AV_CODEC_ID_VMNC = UInt32(90)
const AV_CODEC_ID_VP5 = UInt32(91)
const AV_CODEC_ID_VP6 = UInt32(92)
const AV_CODEC_ID_VP6F = UInt32(93)
const AV_CODEC_ID_TARGA = UInt32(94)
const AV_CODEC_ID_DSICINVIDEO = UInt32(95)
const AV_CODEC_ID_TIERTEXSEQVIDEO = UInt32(96)
const AV_CODEC_ID_TIFF = UInt32(97)
const AV_CODEC_ID_GIF = UInt32(98)
const AV_CODEC_ID_DXA = UInt32(99)
const AV_CODEC_ID_DNXHD = UInt32(100)
const AV_CODEC_ID_THP = UInt32(101)
const AV_CODEC_ID_SGI = UInt32(102)
const AV_CODEC_ID_C93 = UInt32(103)
const AV_CODEC_ID_BETHSOFTVID = UInt32(104)
const AV_CODEC_ID_PTX = UInt32(105)
const AV_CODEC_ID_TXD = UInt32(106)
const AV_CODEC_ID_VP6A = UInt32(107)
const AV_CODEC_ID_AMV = UInt32(108)
const AV_CODEC_ID_VB = UInt32(109)
const AV_CODEC_ID_PCX = UInt32(110)
const AV_CODEC_ID_SUNRAST = UInt32(111)
const AV_CODEC_ID_INDEO4 = UInt32(112)
const AV_CODEC_ID_INDEO5 = UInt32(113)
const AV_CODEC_ID_MIMIC = UInt32(114)
const AV_CODEC_ID_RL2 = UInt32(115)
const AV_CODEC_ID_ESCAPE124 = UInt32(116)
const AV_CODEC_ID_DIRAC = UInt32(117)
const AV_CODEC_ID_BFI = UInt32(118)
const AV_CODEC_ID_CMV = UInt32(119)
const AV_CODEC_ID_MOTIONPIXELS = UInt32(120)
const AV_CODEC_ID_TGV = UInt32(121)
const AV_CODEC_ID_TGQ = UInt32(122)
const AV_CODEC_ID_TQI = UInt32(123)
const AV_CODEC_ID_AURA = UInt32(124)
const AV_CODEC_ID_AURA2 = UInt32(125)
const AV_CODEC_ID_V210X = UInt32(126)
const AV_CODEC_ID_TMV = UInt32(127)
const AV_CODEC_ID_V210 = UInt32(128)
const AV_CODEC_ID_DPX = UInt32(129)
const AV_CODEC_ID_MAD = UInt32(130)
const AV_CODEC_ID_FRWU = UInt32(131)
const AV_CODEC_ID_FLASHSV2 = UInt32(132)
const AV_CODEC_ID_CDGRAPHICS = UInt32(133)
const AV_CODEC_ID_R210 = UInt32(134)
const AV_CODEC_ID_ANM = UInt32(135)
const AV_CODEC_ID_BINKVIDEO = UInt32(136)
const AV_CODEC_ID_IFF_ILBM = UInt32(137)
const AV_CODEC_ID_IFF_BYTERUN1 = UInt32(138)
const AV_CODEC_ID_KGV1 = UInt32(139)
const AV_CODEC_ID_YOP = UInt32(140)
const AV_CODEC_ID_VP8 = UInt32(141)
const AV_CODEC_ID_PICTOR = UInt32(142)
const AV_CODEC_ID_ANSI = UInt32(143)
const AV_CODEC_ID_A64_MULTI = UInt32(144)
const AV_CODEC_ID_A64_MULTI5 = UInt32(145)
const AV_CODEC_ID_R10K = UInt32(146)
const AV_CODEC_ID_MXPEG = UInt32(147)
const AV_CODEC_ID_LAGARITH = UInt32(148)
const AV_CODEC_ID_PRORES = UInt32(149)
const AV_CODEC_ID_JV = UInt32(150)
const AV_CODEC_ID_DFA = UInt32(151)
const AV_CODEC_ID_WMV3IMAGE = UInt32(152)
const AV_CODEC_ID_VC1IMAGE = UInt32(153)
const AV_CODEC_ID_UTVIDEO = UInt32(154)
const AV_CODEC_ID_BMV_VIDEO = UInt32(155)
const AV_CODEC_ID_VBLE = UInt32(156)
const AV_CODEC_ID_DXTORY = UInt32(157)
const AV_CODEC_ID_V410 = UInt32(158)
const AV_CODEC_ID_XWD = UInt32(159)
const AV_CODEC_ID_CDXL = UInt32(160)
const AV_CODEC_ID_XBM = UInt32(161)
const AV_CODEC_ID_ZEROCODEC = UInt32(162)
const AV_CODEC_ID_MSS1 = UInt32(163)
const AV_CODEC_ID_MSA1 = UInt32(164)
const AV_CODEC_ID_TSCC2 = UInt32(165)
const AV_CODEC_ID_MTS2 = UInt32(166)
const AV_CODEC_ID_CLLC = UInt32(167)
const AV_CODEC_ID_MSS2 = UInt32(168)
const AV_CODEC_ID_VP9 = UInt32(169)
const AV_CODEC_ID_AIC = UInt32(170)
const AV_CODEC_ID_ESCAPE130 = UInt32(171)
const AV_CODEC_ID_G2M = UInt32(172)
const AV_CODEC_ID_WEBP = UInt32(173)
const AV_CODEC_ID_HNM4_VIDEO = UInt32(174)
const AV_CODEC_ID_HEVC = UInt32(175)
const AV_CODEC_ID_FIC = UInt32(176)
const AV_CODEC_ID_FIRST_AUDIO = UInt32(65536)
const AV_CODEC_ID_PCM_S16LE = UInt32(65536)
const AV_CODEC_ID_PCM_S16BE = UInt32(65537)
const AV_CODEC_ID_PCM_U16LE = UInt32(65538)
const AV_CODEC_ID_PCM_U16BE = UInt32(65539)
const AV_CODEC_ID_PCM_S8 = UInt32(65540)
const AV_CODEC_ID_PCM_U8 = UInt32(65541)
const AV_CODEC_ID_PCM_MULAW = UInt32(65542)
const AV_CODEC_ID_PCM_ALAW = UInt32(65543)
const AV_CODEC_ID_PCM_S32LE = UInt32(65544)
const AV_CODEC_ID_PCM_S32BE = UInt32(65545)
const AV_CODEC_ID_PCM_U32LE = UInt32(65546)
const AV_CODEC_ID_PCM_U32BE = UInt32(65547)
const AV_CODEC_ID_PCM_S24LE = UInt32(65548)
const AV_CODEC_ID_PCM_S24BE = UInt32(65549)
const AV_CODEC_ID_PCM_U24LE = UInt32(65550)
const AV_CODEC_ID_PCM_U24BE = UInt32(65551)
const AV_CODEC_ID_PCM_S24DAUD = UInt32(65552)
const AV_CODEC_ID_PCM_ZORK = UInt32(65553)
const AV_CODEC_ID_PCM_S16LE_PLANAR = UInt32(65554)
const AV_CODEC_ID_PCM_DVD = UInt32(65555)
const AV_CODEC_ID_PCM_F32BE = UInt32(65556)
const AV_CODEC_ID_PCM_F32LE = UInt32(65557)
const AV_CODEC_ID_PCM_F64BE = UInt32(65558)
const AV_CODEC_ID_PCM_F64LE = UInt32(65559)
const AV_CODEC_ID_PCM_BLURAY = UInt32(65560)
const AV_CODEC_ID_PCM_LXF = UInt32(65561)
const AV_CODEC_ID_S302M = UInt32(65562)
const AV_CODEC_ID_PCM_S8_PLANAR = UInt32(65563)
const AV_CODEC_ID_PCM_S24LE_PLANAR = UInt32(65564)
const AV_CODEC_ID_PCM_S32LE_PLANAR = UInt32(65565)
const AV_CODEC_ID_ADPCM_IMA_QT = UInt32(69632)
const AV_CODEC_ID_ADPCM_IMA_WAV = UInt32(69633)
const AV_CODEC_ID_ADPCM_IMA_DK3 = UInt32(69634)
const AV_CODEC_ID_ADPCM_IMA_DK4 = UInt32(69635)
const AV_CODEC_ID_ADPCM_IMA_WS = UInt32(69636)
const AV_CODEC_ID_ADPCM_IMA_SMJPEG = UInt32(69637)
const AV_CODEC_ID_ADPCM_MS = UInt32(69638)
const AV_CODEC_ID_ADPCM_4XM = UInt32(69639)
const AV_CODEC_ID_ADPCM_XA = UInt32(69640)
const AV_CODEC_ID_ADPCM_ADX = UInt32(69641)
const AV_CODEC_ID_ADPCM_EA = UInt32(69642)
const AV_CODEC_ID_ADPCM_G726 = UInt32(69643)
const AV_CODEC_ID_ADPCM_CT = UInt32(69644)
const AV_CODEC_ID_ADPCM_SWF = UInt32(69645)
const AV_CODEC_ID_ADPCM_YAMAHA = UInt32(69646)
const AV_CODEC_ID_ADPCM_SBPRO_4 = UInt32(69647)
const AV_CODEC_ID_ADPCM_SBPRO_3 = UInt32(69648)
const AV_CODEC_ID_ADPCM_SBPRO_2 = UInt32(69649)
const AV_CODEC_ID_ADPCM_THP = UInt32(69650)
const AV_CODEC_ID_ADPCM_IMA_AMV = UInt32(69651)
const AV_CODEC_ID_ADPCM_EA_R1 = UInt32(69652)
const AV_CODEC_ID_ADPCM_EA_R3 = UInt32(69653)
const AV_CODEC_ID_ADPCM_EA_R2 = UInt32(69654)
const AV_CODEC_ID_ADPCM_IMA_EA_SEAD = UInt32(69655)
const AV_CODEC_ID_ADPCM_IMA_EA_EACS = UInt32(69656)
const AV_CODEC_ID_ADPCM_EA_XAS = UInt32(69657)
const AV_CODEC_ID_ADPCM_EA_MAXIS_XA = UInt32(69658)
const AV_CODEC_ID_ADPCM_IMA_ISS = UInt32(69659)
const AV_CODEC_ID_ADPCM_G722 = UInt32(69660)
const AV_CODEC_ID_ADPCM_IMA_APC = UInt32(69661)
const AV_CODEC_ID_AMR_NB = UInt32(73728)
const AV_CODEC_ID_AMR_WB = UInt32(73729)
const AV_CODEC_ID_RA_144 = UInt32(77824)
const AV_CODEC_ID_RA_288 = UInt32(77825)
const AV_CODEC_ID_ROQ_DPCM = UInt32(81920)
const AV_CODEC_ID_INTERPLAY_DPCM = UInt32(81921)
const AV_CODEC_ID_XAN_DPCM = UInt32(81922)
const AV_CODEC_ID_SOL_DPCM = UInt32(81923)
const AV_CODEC_ID_MP2 = UInt32(86016)
const AV_CODEC_ID_MP3 = UInt32(86017)
const AV_CODEC_ID_AAC = UInt32(86018)
const AV_CODEC_ID_AC3 = UInt32(86019)
const AV_CODEC_ID_DTS = UInt32(86020)
const AV_CODEC_ID_VORBIS = UInt32(86021)
const AV_CODEC_ID_DVAUDIO = UInt32(86022)
const AV_CODEC_ID_WMAV1 = UInt32(86023)
const AV_CODEC_ID_WMAV2 = UInt32(86024)
const AV_CODEC_ID_MACE3 = UInt32(86025)
const AV_CODEC_ID_MACE6 = UInt32(86026)
const AV_CODEC_ID_VMDAUDIO = UInt32(86027)
const AV_CODEC_ID_FLAC = UInt32(86028)
const AV_CODEC_ID_MP3ADU = UInt32(86029)
const AV_CODEC_ID_MP3ON4 = UInt32(86030)
const AV_CODEC_ID_SHORTEN = UInt32(86031)
const AV_CODEC_ID_ALAC = UInt32(86032)
const AV_CODEC_ID_WESTWOOD_SND1 = UInt32(86033)
const AV_CODEC_ID_GSM = UInt32(86034)
const AV_CODEC_ID_QDM2 = UInt32(86035)
const AV_CODEC_ID_COOK = UInt32(86036)
const AV_CODEC_ID_TRUESPEECH = UInt32(86037)
const AV_CODEC_ID_TTA = UInt32(86038)
const AV_CODEC_ID_SMACKAUDIO = UInt32(86039)
const AV_CODEC_ID_QCELP = UInt32(86040)
const AV_CODEC_ID_WAVPACK = UInt32(86041)
const AV_CODEC_ID_DSICINAUDIO = UInt32(86042)
const AV_CODEC_ID_IMC = UInt32(86043)
const AV_CODEC_ID_MUSEPACK7 = UInt32(86044)
const AV_CODEC_ID_MLP = UInt32(86045)
const AV_CODEC_ID_GSM_MS = UInt32(86046)
const AV_CODEC_ID_ATRAC3 = UInt32(86047)
const AV_CODEC_ID_VOXWARE = UInt32(86048)
const AV_CODEC_ID_APE = UInt32(86049)
const AV_CODEC_ID_NELLYMOSER = UInt32(86050)
const AV_CODEC_ID_MUSEPACK8 = UInt32(86051)
const AV_CODEC_ID_SPEEX = UInt32(86052)
const AV_CODEC_ID_WMAVOICE = UInt32(86053)
const AV_CODEC_ID_WMAPRO = UInt32(86054)
const AV_CODEC_ID_WMALOSSLESS = UInt32(86055)
const AV_CODEC_ID_ATRAC3P = UInt32(86056)
const AV_CODEC_ID_EAC3 = UInt32(86057)
const AV_CODEC_ID_SIPR = UInt32(86058)
const AV_CODEC_ID_MP1 = UInt32(86059)
const AV_CODEC_ID_TWINVQ = UInt32(86060)
const AV_CODEC_ID_TRUEHD = UInt32(86061)
const AV_CODEC_ID_MP4ALS = UInt32(86062)
const AV_CODEC_ID_ATRAC1 = UInt32(86063)
const AV_CODEC_ID_BINKAUDIO_RDFT = UInt32(86064)
const AV_CODEC_ID_BINKAUDIO_DCT = UInt32(86065)
const AV_CODEC_ID_AAC_LATM = UInt32(86066)
const AV_CODEC_ID_QDMC = UInt32(86067)
const AV_CODEC_ID_CELT = UInt32(86068)
const AV_CODEC_ID_G723_1 = UInt32(86069)
const AV_CODEC_ID_G729 = UInt32(86070)
const AV_CODEC_ID_8SVX_EXP = UInt32(86071)
const AV_CODEC_ID_8SVX_FIB = UInt32(86072)
const AV_CODEC_ID_BMV_AUDIO = UInt32(86073)
const AV_CODEC_ID_RALF = UInt32(86074)
const AV_CODEC_ID_IAC = UInt32(86075)
const AV_CODEC_ID_ILBC = UInt32(86076)
const AV_CODEC_ID_OPUS = UInt32(86077)
const AV_CODEC_ID_COMFORT_NOISE = UInt32(86078)
const AV_CODEC_ID_TAK = UInt32(86079)
const AV_CODEC_ID_METASOUND = UInt32(86080)
const AV_CODEC_ID_FIRST_SUBTITLE = UInt32(94208)
const AV_CODEC_ID_DVD_SUBTITLE = UInt32(94208)
const AV_CODEC_ID_DVB_SUBTITLE = UInt32(94209)
const AV_CODEC_ID_TEXT = UInt32(94210)
const AV_CODEC_ID_XSUB = UInt32(94211)
const AV_CODEC_ID_SSA = UInt32(94212)
const AV_CODEC_ID_MOV_TEXT = UInt32(94213)
const AV_CODEC_ID_HDMV_PGS_SUBTITLE = UInt32(94214)
const AV_CODEC_ID_DVB_TELETEXT = UInt32(94215)
const AV_CODEC_ID_SRT = UInt32(94216)
const AV_CODEC_ID_FIRST_UNKNOWN = UInt32(98304)
const AV_CODEC_ID_TTF = UInt32(98304)
const AV_CODEC_ID_PROBE = UInt32(102400)
const AV_CODEC_ID_MPEG2TS = UInt32(131072)
const AV_CODEC_ID_MPEG4SYSTEMS = UInt32(131073)
const AV_CODEC_ID_FFMETADATA = UInt32(135168)
# end enum AVCodecID

immutable AVCodecDescriptor
    id::AVCodecID
    _type::AVMediaType
    name::Ptr{UInt8}
    long_name::Ptr{UInt8}
    props::Cint
end

# begin enum Motion_Est_ID
const Motion_Est_ID=UInt32
const ME_ZERO = UInt32(1)
const ME_FULL = UInt32(2)
const ME_LOG = UInt32(3)
const ME_PHODS = UInt32(4)
const ME_EPZS = UInt32(5)
const ME_X1 = UInt32(6)
const ME_HEX = UInt32(7)
const ME_UMH = UInt32(8)
const ME_TESA = UInt32(9)
# end enum Motion_Est_ID

# begin enum AVDiscard
const AVDiscard=Cint
const AVDISCARD_NONE = Int32(-16)
const AVDISCARD_DEFAULT = Int32(0)
const AVDISCARD_NONREF = Int32(8)
const AVDISCARD_BIDIR = Int32(16)
const AVDISCARD_NONKEY = Int32(32)
const AVDISCARD_ALL = Int32(48)
# end enum AVDiscard

# begin enum AVColorPrimaries
const AVColorPrimaries=UInt32
const AVCOL_PRI_BT709 = UInt32(1)
const AVCOL_PRI_UNSPECIFIED = UInt32(2)
const AVCOL_PRI_BT470M = UInt32(4)
const AVCOL_PRI_BT470BG = UInt32(5)
const AVCOL_PRI_SMPTE170M = UInt32(6)
const AVCOL_PRI_SMPTE240M = UInt32(7)
const AVCOL_PRI_FILM = UInt32(8)
const AVCOL_PRI_BT2020 = UInt32(9)
const AVCOL_PRI_NB = UInt32(10)
# end enum AVColorPrimaries

# begin enum AVColorTransferCharacteristic
const AVColorTransferCharacteristic=UInt32
const AVCOL_TRC_BT709 = UInt32(1)
const AVCOL_TRC_UNSPECIFIED = UInt32(2)
const AVCOL_TRC_GAMMA22 = UInt32(4)
const AVCOL_TRC_GAMMA28 = UInt32(5)
const AVCOL_TRC_SMPTE170M = UInt32(6)
const AVCOL_TRC_SMPTE240M = UInt32(7)
const AVCOL_TRC_LINEAR = UInt32(8)
const AVCOL_TRC_LOG = UInt32(9)
const AVCOL_TRC_LOG_SQRT = UInt32(10)
const AVCOL_TRC_IEC61966_2_4 = UInt32(11)
const AVCOL_TRC_BT1361_ECG = UInt32(12)
const AVCOL_TRC_IEC61966_2_1 = UInt32(13)
const AVCOL_TRC_BT2020_10 = UInt32(14)
const AVCOL_TRC_BT2020_12 = UInt32(15)
const AVCOL_TRC_NB = UInt32(16)
# end enum AVColorTransferCharacteristic

# begin enum AVColorSpace
const AVColorSpace=UInt32
const AVCOL_SPC_RGB = UInt32(0)
const AVCOL_SPC_BT709 = UInt32(1)
const AVCOL_SPC_UNSPECIFIED = UInt32(2)
const AVCOL_SPC_FCC = UInt32(4)
const AVCOL_SPC_BT470BG = UInt32(5)
const AVCOL_SPC_SMPTE170M = UInt32(6)
const AVCOL_SPC_SMPTE240M = UInt32(7)
const AVCOL_SPC_YCOCG = UInt32(8)
const AVCOL_SPC_BT2020_NCL = UInt32(9)
const AVCOL_SPC_BT2020_CL = UInt32(10)
const AVCOL_SPC_NB = UInt32(11)
# end enum AVColorSpace

# begin enum AVColorRange
const AVColorRange=UInt32
const AVCOL_RANGE_UNSPECIFIED = UInt32(0)
const AVCOL_RANGE_MPEG = UInt32(1)
const AVCOL_RANGE_JPEG = UInt32(2)
const AVCOL_RANGE_NB = UInt32(3)
# end enum AVColorRange

# begin enum AVChromaLocation
const AVChromaLocation=UInt32
const AVCHROMA_LOC_UNSPECIFIED = UInt32(0)
const AVCHROMA_LOC_LEFT = UInt32(1)
const AVCHROMA_LOC_CENTER = UInt32(2)
const AVCHROMA_LOC_TOPLEFT = UInt32(3)
const AVCHROMA_LOC_TOP = UInt32(4)
const AVCHROMA_LOC_BOTTOMLEFT = UInt32(5)
const AVCHROMA_LOC_BOTTOM = UInt32(6)
const AVCHROMA_LOC_NB = UInt32(7)
# end enum AVChromaLocation

# begin enum AVAudioServiceType
const AVAudioServiceType=UInt32
const AV_AUDIO_SERVICE_TYPE_MAIN = UInt32(0)
const AV_AUDIO_SERVICE_TYPE_EFFECTS = UInt32(1)
const AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = UInt32(2)
const AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = UInt32(3)
const AV_AUDIO_SERVICE_TYPE_DIALOGUE = UInt32(4)
const AV_AUDIO_SERVICE_TYPE_COMMENTARY = UInt32(5)
const AV_AUDIO_SERVICE_TYPE_EMERGENCY = UInt32(6)
const AV_AUDIO_SERVICE_TYPE_VOICE_OVER = UInt32(7)
const AV_AUDIO_SERVICE_TYPE_KARAOKE = UInt32(8)
const AV_AUDIO_SERVICE_TYPE_NB = UInt32(9)
# end enum AVAudioServiceType

immutable RcOverride
    start_frame::Cint
    end_frame::Cint
    qscale::Cint
    quality_factor::Cfloat
end

immutable Array_2_Int16
    d1::Int16
    d2::Int16
end

zero(::Type{Array_2_Int16}) = Array_2_Int16(fill(zero(Int16),2)...)

immutable Array_3_Array_2_Int16
    d1::Array_2_Int16
    d2::Array_2_Int16
    d3::Array_2_Int16
end

zero(::Type{Array_3_Array_2_Int16}) = Array_3_Array_2_Int16(fill(zero(Array_2_Int16),3)...)

immutable AVPanScan
    id::Cint
    width::Cint
    height::Cint
    position::Array_3_Array_2_Int16
end

# begin enum AVPacketSideDataType
const AVPacketSideDataType=UInt32
const AV_PKT_DATA_PALETTE = UInt32(0)
const AV_PKT_DATA_NEW_EXTRADATA = UInt32(1)
const AV_PKT_DATA_PARAM_CHANGE = UInt32(2)
const AV_PKT_DATA_H263_MB_INFO = UInt32(3)
# end enum AVPacketSideDataType

immutable AVPacket
    buf::Ptr{AVBufferRef}
    pts::Int64
    dts::Int64
    data::Ptr{UInt8}
    size::Cint
    stream_index::Cint
    flags::Cint
    side_data::Ptr{Void}
    side_data_elems::Cint
    duration::Cint
    destruct::Ptr{Void}
    priv::Ptr{Void}
    pos::Int64
    convergence_duration::Int64
end

# begin enum AVSideDataParamChangeFlags
const AVSideDataParamChangeFlags=UInt32
const AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = UInt32(1)
const AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = UInt32(2)
const AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = UInt32(4)
const AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = UInt32(8)
# end enum AVSideDataParamChangeFlags

const AVCodecInternal=Void

# begin enum AVFieldOrder
const AVFieldOrder=UInt32
const AV_FIELD_UNKNOWN = UInt32(0)
const AV_FIELD_PROGRESSIVE = UInt32(1)
const AV_FIELD_TT = UInt32(2)
const AV_FIELD_BB = UInt32(3)
const AV_FIELD_TB = UInt32(4)
const AV_FIELD_BT = UInt32(5)
# end enum AVFieldOrder

immutable Array_32_Uint8
    d1::UInt8
    d2::UInt8
    d3::UInt8
    d4::UInt8
    d5::UInt8
    d6::UInt8
    d7::UInt8
    d8::UInt8
    d9::UInt8
    d10::UInt8
    d11::UInt8
    d12::UInt8
    d13::UInt8
    d14::UInt8
    d15::UInt8
    d16::UInt8
    d17::UInt8
    d18::UInt8
    d19::UInt8
    d20::UInt8
    d21::UInt8
    d22::UInt8
    d23::UInt8
    d24::UInt8
    d25::UInt8
    d26::UInt8
    d27::UInt8
    d28::UInt8
    d29::UInt8
    d30::UInt8
    d31::UInt8
    d32::UInt8
end

zero(::Type{Array_32_Uint8}) = Array_32_Uint8(fill(zero(UInt8),32)...)

immutable Array_8_Uint64
    d1::UInt64
    d2::UInt64
    d3::UInt64
    d4::UInt64
    d5::UInt64
    d6::UInt64
    d7::UInt64
    d8::UInt64
end

zero(::Type{Array_8_Uint64}) = Array_8_Uint64(fill(zero(UInt64),8)...)

immutable AVProfile
    profile::Cint
    name::Ptr{UInt8}
end

const AVCodecDefault=Void

immutable AVCodec
    name::Ptr{UInt8}
    long_name::Ptr{UInt8}
    _type::AVMediaType
    id::AVCodecID
    capabilities::Cint
    supported_framerates::Ptr{AVRational}
    pix_fmts::Ptr{AVPixelFormat}
    supported_samplerates::Ptr{Cint}
    sample_fmts::Ptr{AVSampleFormat}
    channel_layouts::Ptr{UInt64}
    max_lowres::UInt8
    priv_class::Ptr{AVClass}
    profiles::Ptr{AVProfile}
    priv_data_size::Cint
    next::Ptr{AVCodec}
    init_thread_copy::Ptr{Void}
    update_thread_context::Ptr{Void}
    defaults::Ptr{AVCodecDefault}
    init_static_data::Ptr{Void}
    init::Ptr{Void}
    encode_sub::Ptr{Void}
    encode2::Ptr{Void}
    decode::Ptr{Void}
    close::Ptr{Void}
    flush::Ptr{Void}
end

immutable AVHWAccel
    name::Ptr{UInt8}
    _type::AVMediaType
    id::AVCodecID
    pix_fmt::AVPixelFormat
    capabilities::Cint
    next::Ptr{AVHWAccel}
    start_frame::Ptr{Void}
    decode_slice::Ptr{Void}
    end_frame::Ptr{Void}
    priv_data_size::Cint
end

immutable AVCodecContext
    av_class::Ptr{AVClass}
    log_level_offset::Cint
    codec_type::AVMediaType
    codec::Ptr{AVCodec}
    codec_name::Array_32_Uint8
    codec_id::AVCodecID
    codec_tag::UInt32
    stream_codec_tag::UInt32
    priv_data::Ptr{Void}
    internal::Ptr{AVCodecInternal}
    opaque::Ptr{Void}
    bit_rate::Cint
    bit_rate_tolerance::Cint
    global_quality::Cint
    compression_level::Cint
    flags::Cint
    flags2::Cint
    extradata::Ptr{UInt8}
    extradata_size::Cint
    time_base::AVRational
    ticks_per_frame::Cint
    delay::Cint
    width::Cint
    height::Cint
    coded_width::Cint
    coded_height::Cint
    gop_size::Cint
    pix_fmt::AVPixelFormat
    me_method::Cint
    draw_horiz_band::Ptr{Void}
    get_format::Ptr{Void}
    max_b_frames::Cint
    b_quant_factor::Cfloat
    rc_strategy::Cint
    b_frame_strategy::Cint
    b_quant_offset::Cfloat
    has_b_frames::Cint
    mpeg_quant::Cint
    i_quant_factor::Cfloat
    i_quant_offset::Cfloat
    lumi_masking::Cfloat
    temporal_cplx_masking::Cfloat
    spatial_cplx_masking::Cfloat
    p_masking::Cfloat
    dark_masking::Cfloat
    slice_count::Cint
    prediction_method::Cint
    slice_offset::Ptr{Cint}
    sample_aspect_ratio::AVRational
    me_cmp::Cint
    me_sub_cmp::Cint
    mb_cmp::Cint
    ildct_cmp::Cint
    dia_size::Cint
    last_predictor_count::Cint
    pre_me::Cint
    me_pre_cmp::Cint
    pre_dia_size::Cint
    me_subpel_quality::Cint
    dtg_active_format::Cint
    me_range::Cint
    intra_quant_bias::Cint
    inter_quant_bias::Cint
    slice_flags::Cint
    xvmc_acceleration::Cint
    mb_decision::Cint
    intra_matrix::Ptr{UInt16}
    inter_matrix::Ptr{UInt16}
    scenechange_threshold::Cint
    noise_reduction::Cint
    me_threshold::Cint
    mb_threshold::Cint
    intra_dc_precision::Cint
    skip_top::Cint
    skip_bottom::Cint
    border_masking::Cfloat
    mb_lmin::Cint
    mb_lmax::Cint
    me_penalty_compensation::Cint
    bidir_refine::Cint
    brd_scale::Cint
    keyint_min::Cint
    refs::Cint
    chromaoffset::Cint
    scenechange_factor::Cint
    mv0_threshold::Cint
    b_sensitivity::Cint
    color_primaries::AVColorPrimaries
    color_trc::AVColorTransferCharacteristic
    colorspace::AVColorSpace
    color_range::AVColorRange
    chroma_sample_location::AVChromaLocation
    slices::Cint
    field_order::AVFieldOrder
    sample_rate::Cint
    channels::Cint
    sample_fmt::AVSampleFormat
    frame_size::Cint
    frame_number::Cint
    block_align::Cint
    cutoff::Cint
    request_channels::Cint
    channel_layout::UInt64
    request_channel_layout::UInt64
    audio_service_type::AVAudioServiceType
    request_sample_fmt::AVSampleFormat
    get_buffer::Ptr{Void}
    release_buffer::Ptr{Void}
    reget_buffer::Ptr{Void}
    get_buffer2::Ptr{Void}
    refcounted_frames::Cint
    qcompress::Cfloat
    qblur::Cfloat
    qmin::Cint
    qmax::Cint
    max_qdiff::Cint
    rc_qsquish::Cfloat
    rc_qmod_amp::Cfloat
    rc_qmod_freq::Cint
    rc_buffer_size::Cint
    rc_override_count::Cint
    rc_override::Ptr{RcOverride}
    rc_eq::Ptr{UInt8}
    rc_max_rate::Cint
    rc_min_rate::Cint
    rc_buffer_aggressivity::Cfloat
    rc_initial_cplx::Cfloat
    rc_max_available_vbv_use::Cfloat
    rc_min_vbv_overflow_use::Cfloat
    rc_initial_buffer_occupancy::Cint
    coder_type::Cint
    context_model::Cint
    lmin::Cint
    lmax::Cint
    frame_skip_threshold::Cint
    frame_skip_factor::Cint
    frame_skip_exp::Cint
    frame_skip_cmp::Cint
    trellis::Cint
    min_prediction_order::Cint
    max_prediction_order::Cint
    timecode_frame_start::Int64
    rtp_callback::Ptr{Void}
    rtp_payload_size::Cint
    mv_bits::Cint
    header_bits::Cint
    i_tex_bits::Cint
    p_tex_bits::Cint
    i_count::Cint
    p_count::Cint
    skip_count::Cint
    misc_bits::Cint
    frame_bits::Cint
    stats_out::Ptr{UInt8}
    stats_in::Ptr{UInt8}
    workaround_bugs::Cint
    strict_std_compliance::Cint
    error_concealment::Cint
    debug::Cint
    debug_mv::Cint
    err_recognition::Cint
    reordered_opaque::Int64
    hwaccel::Ptr{AVHWAccel}
    hwaccel_context::Ptr{Void}
    error::Array_8_Uint64
    dct_algo::Cint
    idct_algo::Cint
    bits_per_coded_sample::Cint
    bits_per_raw_sample::Cint
    lowres::Cint
    coded_frame::Ptr{AVFrame}
    thread_count::Cint
    thread_type::Cint
    active_thread_type::Cint
    thread_safe_callbacks::Cint
    execute::Ptr{Void}
    execute2::Ptr{Void}
    thread_opaque::Ptr{Void}
    nsse_weight::Cint
    profile::Cint
    level::Cint
    skip_loop_filter::AVDiscard
    skip_idct::AVDiscard
    skip_frame::AVDiscard
    subtitle_header::Ptr{UInt8}
    subtitle_header_size::Cint
    error_rate::Cint
    pkt::Ptr{AVPacket}
    vbv_delay::UInt64
end

immutable Array_8_Ptr
    d1::Ptr{UInt8}
    d2::Ptr{UInt8}
    d3::Ptr{UInt8}
    d4::Ptr{UInt8}
    d5::Ptr{UInt8}
    d6::Ptr{UInt8}
    d7::Ptr{UInt8}
    d8::Ptr{UInt8}
end

zero(::Type{Array_8_Ptr}) = Array_8_Ptr(fill(C_NULL,8)...)

immutable Array_8_Cint
    d1::Cint
    d2::Cint
    d3::Cint
    d4::Cint
    d5::Cint
    d6::Cint
    d7::Cint
    d8::Cint
end

zero(::Type{Array_8_Cint}) = Array_8_Cint(fill(zero(Cint),8)...)

immutable AVPicture
    data::Array_8_Ptr
    linesize::Array_8_Cint
end

# begin enum AVSubtitleType
const AVSubtitleType=UInt32
const SUBTITLE_NONE = UInt32(0)
const SUBTITLE_BITMAP = UInt32(1)
const SUBTITLE_TEXT = UInt32(2)
const SUBTITLE_ASS = UInt32(3)
# end enum AVSubtitleType

immutable AVSubtitleRect
    x::Cint
    y::Cint
    w::Cint
    h::Cint
    nb_colors::Cint
    pict::AVPicture
    _type::AVSubtitleType
    text::Ptr{UInt8}
    ass::Ptr{UInt8}
    flags::Cint
end

immutable AVSubtitle
    format::UInt16
    start_display_time::UInt32
    end_display_time::UInt32
    num_rects::UInt32
    rects::Ptr{Ptr{AVSubtitleRect}}
    pts::Int64
end

# begin enum AVPictureStructure
const AVPictureStructure=UInt32
const AV_PICTURE_STRUCTURE_UNKNOWN = UInt32(0)
const AV_PICTURE_STRUCTURE_TOP_FIELD = UInt32(1)
const AV_PICTURE_STRUCTURE_BOTTOM_FIELD = UInt32(2)
const AV_PICTURE_STRUCTURE_FRAME = UInt32(3)
# end enum AVPictureStructure

immutable Array_4_Int64
    d1::Int64
    d2::Int64
    d3::Int64
    d4::Int64
end

zero(::Type{Array_4_Int64}) = Array_4_Int64(fill(zero(Int64),4)...)

immutable Array_5_Cint
    d1::Cint
    d2::Cint
    d3::Cint
    d4::Cint
    d5::Cint
end

zero(::Type{Array_5_Cint}) = Array_5_Cint(fill(zero(Cint),5)...)

immutable AVCodecParser
    codec_ids::Array_5_Cint
    priv_data_size::Cint
    parser_init::Ptr{Void}
    parser_parse::Ptr{Void}
    parser_close::Ptr{Void}
    split::Ptr{Void}
    next::Ptr{AVCodecParser}
end

immutable AVCodecParserContext
    priv_data::Ptr{Void}
    parser::Ptr{AVCodecParser}
    frame_offset::Int64
    cur_offset::Int64
    next_frame_offset::Int64
    pict_type::Cint
    repeat_pict::Cint
    pts::Int64
    dts::Int64
    last_pts::Int64
    last_dts::Int64
    fetch_timestamp::Cint
    cur_frame_start_index::Cint
    cur_frame_offset::Array_4_Int64
    cur_frame_pts::Array_4_Int64
    cur_frame_dts::Array_4_Int64
    flags::Cint
    offset::Int64
    cur_frame_end::Array_4_Int64
    key_frame::Cint
    convergence_duration::Int64
    dts_sync_point::Cint
    dts_ref_dts_delta::Cint
    pts_dts_delta::Cint
    cur_frame_pos::Array_4_Int64
    pos::Int64
    last_pos::Int64
    duration::Cint
    field_order::AVFieldOrder
    picture_structure::AVPictureStructure
    output_picture_number::Cint
end

immutable AVBitStreamFilter
    name::Ptr{UInt8}
    priv_data_size::Cint
    filter::Ptr{Void}
    close::Ptr{Void}
    next::Ptr{AVBitStreamFilter}
end

immutable AVBitStreamFilterContext
    priv_data::Ptr{Void}
    filter::Ptr{AVBitStreamFilter}
    parser::Ptr{AVCodecParserContext}
    next::Ptr{AVBitStreamFilterContext}
end

# begin enum AVLockOp
const AVLockOp=UInt32
const AV_LOCK_CREATE = UInt32(0)
const AV_LOCK_OBTAIN = UInt32(1)
const AV_LOCK_RELEASE = UInt32(2)
const AV_LOCK_DESTROY = UInt32(3)
# end enum AVLockOp

# immutable vaapi_context
#     display::Ptr{Void}
#     config_id::UInt32
#     context_id::UInt32
#     pic_param_buf_id::UInt32
#     iq_matrix_buf_id::UInt32
#     bitplane_buf_id::UInt32
#     slice_buf_ids::Ptr{UInt32}
#     n_slice_buf_ids::UInt32
#     slice_buf_ids_alloc::UInt32
#     slice_params::Ptr{Void}
#     slice_param_size::UInt32
#     slice_params_alloc::UInt32
#     slice_count::UInt32
#     slice_data::Ptr{UInt8}
#     slice_data_size::UInt32
# end

# const FF_VDPAU_STATE_USED_FOR_RENDER = 1
# const FF_VDPAU_STATE_USED_FOR_REFERENCE = 2

# immutable AVVDPAUPictureInfo
#     _AVVDPAUPictureInfo::VdpPictureInfoMPEG4Part2
# end

# immutable AVVDPAUContext
#     decoder::VdpDecoder
#     render::Ptr{VdpDecoderRender}
#     info::AVVDPAUPictureInfo
#     bitstream_buffers_allocated::Cint
#     bitstream_buffers_used::Cint
#     bitstream_buffers::Ptr{VdpBitstreamBuffer}
# end

# immutable vdpau_render_state
#     surface::VdpVideoSurface
#     state::Cint
#     info::AVVDPAUPictureInfo
#     bitstream_buffers_allocated::Cint
#     bitstream_buffers_used::Cint
#     bitstream_buffers::Ptr{VdpBitstreamBuffer}
# end

# const AV_XVMC_ID = 0x1dc711c0

# immutable xvmc_pix_fmt
#     xvmc_id::Cint
#     data_blocks::Ptr{Int16}
#     mv_blocks::Ptr{XvMCMacroBlock}
#     allocated_mv_blocks::Cint
#     allocated_data_blocks::Cint
#     idct::Cint
#     unsigned_intra::Cint
#     p_surface::Ptr{XvMCSurface}
#     p_past_surface::Ptr{XvMCSurface}
#     p_future_surface::Ptr{XvMCSurface}
#     picture_structure::UInt32
#     flags::UInt32
#     start_mv_blocks_num::Cint
#     filled_mv_blocks_num::Cint
#     next_free_data_block_num::Cint
# end
